package com.itheima.service;

import com.itheima.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author 小帅蓝
 * @Date 2022/6/20 8:46
 */
public interface SetmealService {

    /**
     * 新增套餐
     *
     * @param setmealAndSetmealDishVO setmealAndSetmealDishVO
     * @return boolean
     */
    boolean addSetmeal(SetmealAndSetmealDishVO setmealAndSetmealDishVO);

    /**
     * 计算套餐总数
     *
     * @param name 套餐名称
     * @return 套餐总数
     */
    Integer getCount(String name);

    /**
     * 套餐分页查询
     *
     * @param name     套餐名称
     * @param page     起始页
     * @param pageSize 每页显示条数
     * @return 套餐信息集合
     */
    List<SetmealAndCategory> query(String name, Integer page, Integer pageSize);

    /**
     * 逻辑批量删除菜品
     *
     * @param ids ids
     * @return boolean
     */
    boolean deleteSetmeal(String ids);

    /**
     * 根据id获取套餐
     *
     * @param id 菜品id
     * @return SetmealAndSetmealDishVO
     */
    SetmealAndCateAndSetmealDishVO queryById(String id);

    /**
     * 修改套餐
     *
     * @param scs SetmealAndCateAndSetmealDishVO
     * @return boolean
     */
    boolean updateSetmeal(SetmealAndCateAndSetmealDishVO scs);

    /**
     * 套餐上架/下架
     *
     * @param ids    套餐id集合
     * @param status 套餐状态
     * @return boolean
     */
    boolean updateStatus(String ids, Integer status);

    /**
     * 查询套餐id的所有菜品 菜品详情(移动端)
     *
     * @param setmealId 套餐id
     * @return List<DishWithFlavorVo>
     */
    List<DishWithFlavorVo> selectListById(String setmealId);

    /**
     * 通过categoryId查询套餐列表 套餐列表（移动端）
     *
     * @param categoryId 菜品分类id
     * @param status     状态：0-停用，1-启用
     * @return List<SetmealAndCategory>
     */
    List<SetmealAndCategory> selectList(String categoryId, Integer status);

}
